home *** CD-ROM | disk | FTP | other *** search
/ Power Programmierung 2 / Power-Programmierung CD 2 (Tewi)(1994).iso / c / library / mslang / sktdem / skt.ms_ / skt.ms
Encoding:
Text File  |  1994-02-21  |  10.4 KB  |  381 lines

  1. ' Setup Script For The Socket Toolkit
  2.  
  3.  
  4. '$INCLUDE 'setupapi.inc'
  5. '$INCLUDE 'msdetect.inc'
  6.  
  7. ''Dialog ID's
  8. CONST ASKQUIT      = 200
  9. CONST DESTPATH     = 300
  10. CONST EXITFAILURE  = 400
  11. CONST EXITQUIT     = 600
  12. CONST EXITSUCCESS  = 700
  13. CONST OPTIONS      = 800
  14. CONST APPHELP      = 900
  15. CONST CUSTINST     = 6200
  16. CONST TOOBIG       = 6300
  17. CONST BADPATH      = 6400
  18. CONST VBPATHDLG    = 7900
  19.  
  20. ''Bitmap ID
  21. CONST LOGO         = 1
  22.  
  23. ''File Types
  24. CONST APPFILES     = 1
  25. CONST OPTFILES1    = 2
  26. CONST OPTFILES2    = 3
  27.  
  28.  
  29. GLOBAL DEST$        ''Default destination directory.
  30. GLOBAL WINDRIVE$    ''Windows drive letter.
  31. GLOBAL WINPATH$    ''Windows drive letter.
  32. GLOBAL SOURCE$
  33. GLOBAL VBPATH$
  34.  
  35. GLOBAL Cost&
  36. GLOBAL Free&
  37.  
  38. ''CustInst list symbol names
  39. GLOBAL APPNEEDS$    ''Option list costs per drive
  40. GLOBAL EXTRACOSTS$  ''List of extra costs to add per drive
  41.  
  42. ''Dialog list symbol names
  43. GLOBAL STATUSTEXT$
  44. GLOBAL DRIVETEXT$
  45.  
  46. DECLARE FUNCTION LoadLibrary LIB "KERNEL" (F$) AS INTEGER
  47. DECLARE FUNCTION SetErrorMode LIB "KERNEL" ( EMode% ) AS INTEGER
  48. DECLARE FUNCTION WinHelp LIB "USER" ( win% , filen$ , cmd% , ldata$ ) AS INTEGER
  49. DECLARE SUB FreeLibrary LIB "KERNEL" (H%)
  50. DECLARE FUNCTION GetModuleFileName LIB "KERNEL"( H%, F$ , L% ) as INTEGER
  51.  
  52. DECLARE SUB RecalcOptFiles (ftype%)
  53. DECLARE SUB RecalcPath
  54. DECLARE SUB SetDriveStatus
  55. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  56.  
  57.  
  58.  
  59. INIT:
  60.      CUIDLL$ = "mscuistf.dll"            ''custom user interface dll
  61.      HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  62.  
  63.      a%=Ctl3dRegister( HInstFrame() )
  64.      a%=Ctl3dAutoSubclass( HInstFrame() )
  65.      SetBitmap CUIDLL$, LOGO
  66.      SetTitle "Network Sockets Toolkit Setup"
  67.  
  68.      szInf$ = GetSymbolValue("STF_SRCINFPATH")
  69.      IF szInf$ = "" THEN
  70.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SKT.INF"
  71.      END IF
  72.      ReadInfFile szInf$
  73.  
  74.      WINPATH$ = GetWindowsDir
  75.      WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  76.      DEST$ = WINDRIVE$ + ":\SKT"
  77.  
  78.      ''CustInst list symbols
  79.      DRIVETEXT$   = "DriveStatusText"
  80.      FOR i% = 1 TO 3 STEP 1
  81.           AddListItem DRIVETEXT$, ""
  82.      NEXT i%
  83.      AddListItem DRIVETEXT$, DEST$
  84.  
  85.      OldMode% = SetErrorMode( &h8000 )
  86.      FileN$ = "NWCALLS.DLL"
  87.      FileNC$ = String$( 256, " " )
  88.      HLib% = LoadLibrary( FileN$ )
  89.      if HLib% > 32 then
  90.           a% = GetModuleFileName( HLib% , FileNC$ , 256 )
  91.           Ver$ = GetVersionOfFile( FileNC$ )
  92.           FreeLibrary( HLib% )
  93.           if Val( Ver$ ) < 4 then
  94.            if Ver$ = "" then 
  95.                Ver$ = "UNKNOWN"
  96.            end if
  97.            Msg$ = "This software requires the Netware Client Version 4.x or greater.  "
  98.            Msg$ = msg$ + "Setup found version " + Ver$ + ".  You must upgrade for this "
  99.            Msg$ = msg$ + "software to operate."
  100.            a% = DoMsgBox( Msg$ , "Network Sockets Toolkit" , MB_ICONHAND Or MB_OK )
  101.           end if
  102.      endif
  103.      OldMode% = SetErrorMode( OldMode% )
  104.  
  105.      FileN$ = "VB.EXE"
  106.      VBPATH$ = FindTargetOnEnvVar( FileN$ ,"PATH")
  107.      if VBPATH$<>"" then
  108.           VBPATH$=MiD$(VbPATh$,1,Len(VbPath$)-6)
  109.      endif
  110.  
  111.      ''Disk cost list symbols
  112.      APPNEEDS$   = "AppNeeds"
  113.      EXTRACOSTS$ = "ExtraCosts"
  114.  
  115.      FOR i% = 1 TO 26 STEP 1
  116.               AddListItem APPNEEDS$, "0"
  117.      NEXT i%
  118.      FOR i% = 1 TO 26 STEP 1
  119.               AddListItem EXTRACOSTS$, "0"
  120.      NEXT i%
  121.  
  122.      RecalcPath
  123.      SetDriveStatus
  124.  
  125. '$IFDEF DEBUG
  126.      i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  127. '$ENDIF ''DEBUG
  128.  
  129.  
  130.  
  131. CUSTINST:
  132.      sz$ = UIStartDlg(CUIDLL$, CUSTINST, "FCustInstDlgProc", 0, "")
  133.      UIPop 1
  134.      IF sz$ = "CONTINUE" THEN
  135.           if Cost& > Free& then
  136.               GOSUB TOOBIG
  137.               GOTO CUSTINST
  138.           endif
  139.            GOTO B
  140.      ELSEIF sz$ = "PATH" THEN
  141.           GOTO GETPATH
  142.      ELSE
  143.           GOSUB ASKQUIT
  144.           GOTO CUSTINST
  145.      END IF
  146. B:
  147.      if VbPath$="" then
  148.          GOTO GETVBPATH
  149.      end if
  150. INSTALL:
  151.      SOURCE$ = GetSymbolValue("STF_SRCDIR")
  152.      ClearCopyList
  153.      if mid$( Dest$ , len(Dest$) , 1 ) = "\" then
  154.         Dest$ = mid$( Dest$ , 1 , Len( Dest$ ) - 1 )
  155.      end if
  156.      AddSectionFilesToCopyList "BIN", SOURCE$, WINPATH$
  157.      AddSectionFilesToCopyList "HELP", SOURCE$, WINPATH$
  158.      AddSectionFilesToCopyList "INCLUDE", SOURCE$, DEST$+"\INCLUDE"
  159.      AddSectionFilesToCopyList "LIB", SOURCE$, DEST$+"\LIB"
  160.      AddSectionFilesToCopyList "UNITS", SOURCE$, DEST$+"\UNITS"
  161.      AddSectionFilesToCopyList "SAMPLES_C", SOURCE$, DEST$+"\SAMPLES\C"
  162.      AddSectionFilesToCopyList "SAMPLES_VB", SOURCE$, DEST$+"\SAMPLES\VB"
  163.      AddSectionFilesToCopyList "SAMPLES_PASCAL", SOURCE$, DEST$+"\SAMPLES\PASCAL"
  164.      CreateDir DEST$+"\INCLUDE", cmoVital
  165.      CreateDir DEST$+"\LIB", cmoVital
  166.      CreateDir DEST$+"\UNITS", cmoVital
  167.      CreateDir DEST$+"\SAMPLES\C", cmoVital
  168.      CreateDir DEST$+"\SAMPLES\PASCAL", cmoVital
  169.      CreateDir DEST$+"\SAMPLES\VB", cmoVital
  170.      SetCopyGaugePosition -1 , 115
  171.      CopyFilesInCopyList
  172.  
  173.      CreateProgmanGroup "Network Sockets Toolkit", "", cmoNone
  174.      ShowProgmanGroup  "Network Sockets Toolkit", 1, cmoNone
  175.      CreateProgmanItem "Network Sockets Toolkit", "Network Sockets 2.0 Help", "winhelp.exe "+"SKT.HLP", "", cmoOverwrite
  176.      CreateProgmanItem "Network Sockets Toolkit", "C Example Exe", DEST$+"\SAMPLES\C\SIMPSKTC.EXE DEMO1 DEMO1", "", cmoOverwrite
  177.      CreateProgmanItem "Network Sockets Toolkit", "C Example Source", "NOTEPAD.EXE "+DEST$+"\SAMPLES\C\SIMPSKTC.C", "", cmoOverwrite
  178.      CreateProgmanItem "Network Sockets Toolkit", "Pascal Example Exe", DEST$+"\SAMPLES\PASCAL\SIMPSKTP.EXE DEMO2 DEMO2", "", cmoOverwrite
  179.      CreateProgmanItem "Network Sockets Toolkit", "Pascal Example Source", "notepad.exe "+DEST$+"\SAMPLES\PASCAL\SIMPSKTP.PAS", "", cmoOverwrite
  180.      CreateProgmanItem "Network Sockets Toolkit", "VB Example Exe", DEST$+"\SAMPLES\VB\SOCKDEMO.EXE", "", cmoOverwrite
  181.      CreateProgmanItem "Network Sockets Toolkit", "VB Chat Example Exe", DEST$+"\SAMPLES\VB\SOCKCHAT.EXE", "", cmoOverwrite
  182.      if VBPath$ <> "" then
  183.        CreateProgmanItem "Network Sockets Toolkit", "VB Example Source", VBPATH$+"VB.EXE "+DEST$+"\SAMPLES\VB\SOCKDEMO.MAK", "", cmoOverwrite
  184.        CreateProgmanItem "Network Sockets Toolkit", "VB Chat Example Source", VBPATH$+"VB.EXE " +DEST$+"\SAMPLES\VB\SOCKCHAT.MAK", "", cmoOverwrite
  185.      endif
  186.      Installed% = 1
  187.  
  188.  
  189. QUIT:
  190.      ON ERROR GOTO ERRQUIT
  191.  
  192.      IF ERR = 0 THEN
  193.          dlg% = EXITSUCCESS
  194.      ELSEIF ERR = STFQUIT THEN
  195.          dlg% = EXITQUIT
  196.      ELSE
  197.          dlg% = EXITFAILURE
  198.      END IF
  199. QUITL1:
  200.      sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  201.      IF sz$ = "REACTIVATE" THEN
  202.          GOTO QUITL1
  203.      ENDIF
  204.      UIPop 1
  205.      a%=Ctl3dUnRegister( HInstFrame() )
  206.  
  207.      if Installed = 1 then
  208.         a%=WinHelp( 0 , "SKT.HLP" , 257 , "License Agreement" )
  209.      end if
  210.  
  211.      END
  212.  
  213. ERRQUIT:
  214.      a%=Ctl3dUnRegister( HInstFrame() )
  215.      i% = DoMsgBox("Setup sources were corrupted. Contact Apiary technical support.", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  216.      END
  217.  
  218.  
  219.  
  220. GETPATH:
  221.      SetSymbolValue "EditTextIn", DEST$
  222.      SetSymbolValue "EditFocus", "END"
  223. GETPATHL1:
  224.      sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", 0, "")
  225.  
  226.      IF sz$ = "CONTINUE" THEN
  227.         olddest$ = DEST$
  228.         DEST$ = GetSymbolValue("EditTextOut")
  229.         IF IsDirWritable(DEST$) = 0 THEN
  230.          GOSUB BADPATH
  231.          GOTO GETPATHL1
  232.         END IF
  233.         UIPop 1
  234.         IF LEN(DEST$) > 23 THEN
  235.             ReplaceListItem DRIVETEXT$, 4, MID$(DEST$, 1, 23)+"..."
  236.         ELSE
  237.             ReplaceListItem DRIVETEXT$, 4, DEST$
  238.         END IF
  239.         IF (olddest$ <> DEST$) AND (olddest$ <> DEST$+"\") AND (olddest$+"\" <> DEST$) THEN
  240.           RecalcPath
  241.           SetDriveStatus
  242.         END IF
  243.         olddest$ = ""
  244.         GOTO CUSTINST
  245.     ELSEIF sz$ = "REACTIVATE" THEN
  246.         RecalcPath
  247.         SetDriveStatus
  248.         GOTO GETPATHL1
  249.     ELSEIF sz$ = "EXIT" THEN
  250.         GOSUB ASKQUIT
  251.         GOTO GETPATHL1
  252.     ELSE
  253.         UIPop 1
  254.         GOTO CUSTINST
  255.     END IF
  256.  
  257. TOOBIG:
  258.      sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  259.      IF sz$ = "REACTIVATE" THEN
  260.          RecalcPath
  261.          SetDriveStatus
  262.          GOTO TOOBIG
  263.      END IF
  264.      UIPop 1
  265.      RETURN
  266.  
  267. BADPATH:
  268.      sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  269.      IF sz$ = "REACTIVATE" THEN
  270.          RecalcPath
  271.          SetDriveStatus
  272.          GOTO BADPATH
  273.      END IF
  274.      UIPop 1
  275.      RETURN
  276.  
  277.  
  278.  
  279. ASKQUIT:
  280.      sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  281.  
  282.      IF sz$ = "EXIT" THEN
  283.           UIPopAll
  284.           ERROR STFQUIT
  285.      ELSEIF sz$ = "REACTIVATE" THEN
  286.           GOTO ASKQUIT
  287.      ELSE
  288.           UIPop 1
  289.      ENDIF
  290.      RETURN
  291.  
  292. GETVBPATH:
  293.      SetSymbolValue "EditTextIn", ""
  294.      SetSymbolValue "EditFocus", "END"
  295. GETVBPATHL1:
  296.     sz$ = UIStartDlg(CUIDLL$, VBPATHDLG, "FEditDlgProc", 0, "")
  297.  
  298.     IF sz$ = "CONTINUE" THEN
  299.         VBPATH$ = GetSymbolValue("EditTextOut")
  300.         if VBPATH$="" then
  301.             gosub BadPath2
  302.             goto getvbpath
  303.         end if
  304.         IF MID$( VBPATH$ , LEN(VBPATH$) , 1 ) <> "\" then
  305.            VBPATH$ = VBPATH$ + "\"
  306.         endif
  307.         If DoesFileExist( VBPATH$+"VB.EXE" , femExists ) = 0 then
  308.            Gosub BadPath2
  309.            goto GETVBPATH
  310.         end if
  311.         UIPop 1
  312.         GOTO INSTALL
  313.     ELSEIF sz$ = "REACTIVATE" THEN
  314.         GOTO GETVBPATHL1
  315.     ELSEIF sz$ = "EXIT" THEN
  316.         GOSUB ASKQUIT
  317.         GOTO GETVBPATHL1
  318.     ELSE
  319.         VBPATH$ = ""
  320.         UIPop 1
  321.         GOTO INSTALL
  322.     END IF
  323. BADPATH2:
  324.      sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  325.      IF sz$ = "REACTIVATE" THEN
  326.          GOTO BADPATH2
  327.      END IF
  328.      UIPop 1
  329.      RETURN
  330.  
  331.  
  332.  
  333. SUB RecalcOptFiles (ftype%) STATIC
  334.      ClearCopyList
  335.      SOURCE$ = GetSymbolValue("STF_SRCDIR")
  336.      if mid$( Dest$ , len(Dest$) , 1 ) = "\" then
  337.         Dest$ = mid$( Dest$ , 1 , Len( Dest$ ) - 1 )
  338.      end if
  339.      AddSectionFilesToCopyList "BIN", SOURCE$, WINPATH$
  340.      AddSectionFilesToCopyList "HELP", SOURCE$, WINPATH$
  341.      AddSectionFilesToCopyList "INCLUDE", SOURCE$, DEST$+"\INCLUDE"
  342.      AddSectionFilesToCopyList "LIB", SOURCE$, DEST$+"\LIB"
  343.      AddSectionFilesToCopyList "UNITS", SOURCE$, DEST$+"\UNITS"
  344.      AddSectionFilesToCopyList "SAMPLES_C", SOURCE$, DEST$+"\SAMPLES\C"
  345.      AddSectionFilesToCopyList "SAMPLES_VB", SOURCE$, DEST$+"\SAMPLES\VB"
  346.      AddSectionFilesToCopyList "SAMPLES_PASCAL", SOURCE$, DEST$+"\SAMPLES\PASCAL"
  347.      StillNeed& = GetCopyListCost(EXTRACOSTS$, APPNEEDS$, "")
  348. END SUB
  349.  
  350. SUB RecalcPath STATIC
  351.      CursorSave% = ShowWaitCursor()
  352.      RecalcOptFiles 0
  353.      RestoreCursor CursorSave%
  354. END SUB
  355.  
  356. SUB SetDriveStatus STATIC
  357.  
  358.      drive$ = MID$(DEST$, 1, 1)
  359.      ndrive% = ASC(ucase$(drive$)) - ASC("A") + 1
  360.      cost& = VAL(GetListItem(APPNEEDS$, ndrive%))
  361.      free& = GetFreeSpaceForDrive(drive$)
  362.      ReplaceListItem DRIVETEXT$, 1, drive$ + ":"
  363.      ReplaceListItem DRIVETEXT$, 2, STR$(cost& / 1024) + " K"
  364.      ReplaceListItem DRIVETEXT$, 3, STR$(free& / 1024) + " K"
  365.  
  366. END SUB
  367.  
  368.  
  369. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  370.      IF szDir$ = "" THEN
  371.          MakePath = szFile$
  372.      ELSEIF szFile$ = "" THEN
  373.          MakePath = szDir$
  374.      ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  375.          MakePath = szDir$ + szFile$
  376.      ELSE
  377.          MakePath = szDir$ + "\" + szFile$
  378.      END IF
  379. END FUNCTION
  380.  
  381.